package com.pft.web.util;

import android.text.TextUtils;

import java.io.File;

public final class FileUtils {
    /**
     * 删除File代表的路径或者文件。
     */
    public static void deleteFile(final File file) {
        if (file != null) {
            if (file.isDirectory()) {
                final File[] files = file.listFiles();
                if (files != null) {
                    for (final File file1 : files) {
                        deleteFile(file1);
                    }
                }
                file.delete();
            } else {
                file.delete();
            }
        }
    }

    /**
     * 获取指定参数表示的File对象。
     *
     * @param rootPath 文件根路径
     * @param subPath  文件追加的子路径
     * @param fileName 文件名
     * @return 参数表示的File对象
     */
    public static File getFile(final File rootPath, final String subPath,
                               final String fileName) {
        if (rootPath == null) {
            return null;
        } else if (rootPath.isFile()) {
            return rootPath;
        } else {
            final File dir = TextUtils.isEmpty(subPath) ? rootPath : new File(rootPath, subPath);
            if (TextUtils.isEmpty(fileName)) {
                if (dir.exists()) {
                    return dir;
                } else {
                    return dir.mkdirs() ? dir : null;
                }
            } else {
                if (dir.exists()) {
                    return new File(dir, fileName);
                } else {
                    return dir.mkdirs() ? new File(dir, fileName) : null;
                }
            }
        }
    }

}
